*******************************************************************************
●ドキュメント種別　　　：各ライブラリ開発説明ファイル
●ファイル記号名称　　　：manspr.doc
●対象ライブラリ記号名称：spr
●対象ライブラリ名称　　：スプライト
●バージョン 　　 　　　：1.21　
●作成者　　　　　　　　：H.E
●作成日　　　　　　　　：1995-05-30
●その他のメッセージ　　：なし
*******************************************************************************

■SSHOFF発効に関する問題への対応('95-11)
      SPR_2Initial関数の内部関数SPR_InitSlaveSHでSSHOFFを発効しているの
    で、問題が発生する可能性があり、次のような対策を行った。
        a) SPR_InitSlaveSH関数から、SSHOFF発効部分を削除。
        b) 5-2-2.SPR_2Initial関数からSPR_InitSlaveSH関数呼び出しを削除
           したSPR_2Initial2関数を追加。
      以上から、アプリケーションはSPR_2Initial関数とSPR_2Initial2関数を
    SlaveCPUの状態に応じて次のように使い分けなければならない。
        a) SPR_2Inirial  : SlaveCPU 停止時
        b) SPR_2Inirial2 : SlaveCPU 動作時
      故にアプリケーションはSlaveCPUの動作を管理しなければならない。

■Ver1.20の不良対策(Ver1.21)
  スレーブの管理変数がCinepakライブラリ Ver1.10のスレーブ管理変数と同一のため、
リンク時にエラーがでてしまうため以下のように変数名を変更した。
　●旧変数名　SlaveCommand, SlaveState, SlaveParam
　●新変数名　SPR_SlaveCommand, SPR_SlaveState, SPR_SlaveParam

1.追加説明

１．１ スプライト表示基本処理ライブラリ

  なし

１．２ スプライト表示拡張処理ライブラリ

● 高速化のためにスプライトコマンドおよびグーローテーブル用のワークエリアが、
　 ワークエリア定義マクロで指定された数分、ワークＲＡＭ上に獲得されます。

● #define  USE_DMA_LEVEL   n　は不要になり、ＶＲＡＭへのコマンドとキャラクタ
 　データ両方の転送を無条件にＤＭＡで行います。

１．３ スプライト３Ｄ表示ライブラリ

● バージョン 1.02 版より４倍強ほど高速化がはかられています。
  （クラスタ数が少なく、１オブジェクトのポリゴン数が多い場合です）

● 高速化のためクリッピング方式が変更になり、クリッピングモードのセット
   SPR_3SetClipLevel(Uint16 clipLevel, Fixed32 clipZmin, Fixed32 clipZmax)
   ファンクションの clipLevel 値の意味が次のように変わりました。

   clipLevel：クリッピングのレベル番号
              ０＝クリッピングなし。
              １＝視点座標系のＺ範囲でクリップ
　　　　　　　　　ポリゴンの代表点のＺ値が指定Ｚ値範囲外に出たものは描画
　　　　　　　　　されない。
          ２以上＝フレームバッファ全域をスクリーンとする視野ピラミッドで
　　　　　　　　　クリップを行う。１点でも視野ピラミッド外に出たポリゴンは
　　　　　　　　　描画されない。

● オブジェクトテーブルの面代表点座標テーブルの指定が無くなり、未使用エリア
　 となりました。指定されていても無視されます。

● 高速化の方式が変更になり、３Ｄワークエリア定義マクロの前に指定する
　 #define SPR_3USE_DOUBLE_BUF の定義が無くなりました。
　 指定されても無視されます。

１．４ スプライト実行環境の変更方法

　 ３Ｄおよび２Ｄの高速処理を行うために、スレーブＳＨ、ＤＳＰを用いますが、
　 ＡＰによりそれらをライブラリ側で使用されたくない場合があります。
　 このような場合、sega_spr.h の先頭に定義されている以下の #define を定義また
　 はコメントアウトしてスプライト、スクロールライブラリを再構築することで、スプ
　 ライトの実行環境を変更することができます。

   /*------------------------------------------
    * Select 3D & Sprite Execute Environment
    *----------------------------------------*/
    #define  SPR_SYNC_VB_OUT
    #define  USE_SLAVE
    #define  USE_DSP
    #define  USE_INBETWEEN_OBJECT
    #define  USE_DEBUG_INFO

　 各 #define の説明を以下に示します。

(1) SPR_SYNC_VB_OUT
    これを定義すると SCL_DisplayFrame() のスプライトのフレームバッファ切り替え
　　待ちがＶブランクアウトになり、１フィールドの処理時間が延びます。
　　スクロールのレジスタ書き込みは、SCL_DisplayFrame() を待たずＶブランクイン
　　で行われます。
　　コメントアウトすると、従来通りＶブランクインでスクロール、スプライトの同期
　　が取られます。

(2) USE_SLAVE
　　これを定義するとスレーブＳＨを使用し、メインＳＨとの並列処理を行います。
　　コメントアウトするとスレーブＳＨは使用しません。

(3) USE_DSP
　　これを定義すると座標変換のマトリックス合成をＤＳＰで行い、ＳＨ側と並列処理
　　を行います。
　　コメントアウトするとＤＳＰは使用しません。

(4) USE_INBETWEEN_OBJECT
　　これを定義するとオブジェクト間接続ポリゴンの処理ができます。オブジェクト間
　　接続ポリゴンが無い場合、この定義をコメントアウトすることで３Ｄライブラリの
　　若干のシェイプアップがはかれます。

(5) USE_DEBUG_INFO
　　これを定義すると SPR_3DrawModel() による計算ポリゴン数と描画ポリゴン数を
　　以下の変数に設定します。この値は累積値なので、ＡＰ側で必要に応じクリアして
　　下さい。
      extern int  dbgComputePol;   /* 計算ポリゴン数 */
      extern int  dbgDrawPol;      /* 描画ポリゴン数 */
    この変数は sega_spr.h に定義済みです。


2.機能・性能拡張予定

    なし


********************************** end of file ********************************
